package business;

import java.util.List;

import model.Kunde;

/**
 * @author andris
 *
 */
public interface KundenLogik {

	
	
	/**
	 * @param kundennummer
	 * @return
	 */
	public Kunde getKunde(int kundennummer);
	
	
	/**
	 * liefert alle Kunden deren Kundennummer die gegebene Zahl enthalten
	 * 
	 * @param kundennummer
	 * @return
	 */
	public List<Kunde> getKundenListeZuNummer(String kundennummer);
	
	
	/**
	 * liefert alle Kunden deren Name die gegebenen Zeichen enthält
	 * 
	 * @param name
	 * @return
	 */
	public List<Kunde> getKundenListeZuName(String name);
	
	
	/**
	 * @param kunde
	 * @throws Exception 
	 */
	public void updateKunde(Kunde kunde) throws Exception;
	
	
	/**
	 * @param kunde
	 */
	public void saveKunde(Kunde kunde);
	
	
	/**
	 * löscht den Kunden, liefert ihn aber nochmals zurück
	 * 
	 * @param kunde
	 */
	public Kunde removeKunde(int kundennummer);
	
	
	/**
	 * der aufruf dieser methode gibt das Objekt und alle Referenzen frei
	 * das Objekt lässt sich danach nicht wieder verwenden, und wird jegliche
	 * Versuche dieser Art mit einer IllegalStateException verhindern.
	 * 
	 */
	public void close();
}
